package pe.com.bbva.modpre.negocio;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.vaadin.ui.Window;

import pe.com.bbva.modpre.dominio.Membresia;
import pe.com.bbva.modpre.dominio.Opcion;
import pe.com.bbva.modpre.dominio.Permiso;
import pe.com.bbva.modpre.dominio.Preferencia;
import pe.com.bbva.modpre.dominio.Rol;
import pe.com.bbva.modpre.dominio.RolTipoBanca;
import pe.com.bbva.modpre.dominio.TipoBanca;
import pe.com.bbva.modpre.dominio.Usuario;

public interface SeguridadService extends ConfiguracionService,Serializable{

	Usuario login(String loginUsuario, String password, Window window);
	Usuario login(String loginUsuario, Window window);
	Map<String, List<Opcion>> obtenerOpciones();
	List<Rol> buscarRoles(Rol rol);
	List<Membresia> buscarMembresia(Membresia membresia);
	List<RolTipoBanca> obtenerRolBancas(Rol rol);
	void guardarRol(Rol rol);
	void eliminarRol(Long id);
	void guardarMembresia(Membresia membresia);
	void eliminarMembresia(Long id);
	List<TipoBanca> obtenerBancas();
	void guardarRolTipoBanca(RolTipoBanca rolTipoBanca);
	void eliminarRolTipoBanca(Long id);
	List<Permiso> obtenerPermisosXRol(Long idRol, boolean estadoActivo);
	void guardarPermisos(Long idRol, List<Long> idsOpciones);
	Map<String, List<Opcion>> listarOpciones();
	Usuario usuarioxRegistro(String registro);
	boolean validarLdapUsuario(String registro);
	Membresia membresiaxValor(String valor);
	Preferencia obtenerPreferencia(Preferencia preferencia);
	void guardarPreferencia(Preferencia preferencia);
	
}
